unit DIrr.WrapType;

{$I DIrr.inc}

interface

uses
  DIrr.Config, DIrr.Types, DIrr.Color;

type
  TMaterialLayer = record
    TexturePtr: Pointer; //TTexture;
    TextureWrapU: Byte;
    TextureWrapV: Byte;
    BilinearFilter: Boolean;
    TrilinearFilter: Boolean;
    AnisotropicFilter: Byte;
    LODBias: ShortInt;
  end;

  TMaterialSwitch =
  (
		bsWireframe,
		bsPointCloud,
		bsGouraudShading,
		bsLighting,
  	bsZWriteEnable,
		bsBackfaceCulling,
		bsFrontfaceCulling,
    bsFogEnable,
		bsNormalizeNormals,
		bsUseMipMaps
  );
  TMaterialSwitches = set of TMaterialSwitch;

  TMaterial = record
    TextureLayer: array[0..Pred(MATERIAL_MAX_TEXTURES)] of TMaterialLayer;
		MaterialType: E_MATERIAL_TYPE;
		AmbientColor: TIrrColor;
		DiffuseColor: TIrrColor;
		TIrrColor: TIrrColor;
		SpecularColor: TIrrColor;
		Shininess: F32;
		MaterialTypeParam: F32;
		MaterialTypeParam2: F32;
    Thickness: F32;
		ZBuffer: U8;
		AntiAliasing: U8;
		ColorMask: U8;
		ColorMaterial: U8;
		BlendOperation: E_BLEND_OPERATION;
		PolygonOffsetFactor: U8;
		PolygonOffsetDirection: E_POLYGON_OFFSET;
    Switches: TMaterialSwitches;
  end;

implementation

end.
